;; http://srfi.schemers.org/srfi-93/srfi-93.html

;; The following example highlights how let-syntax and letrec-syntax differ.

(let ([f (lambda (x) (+ x 1))])
  (let-syntax ([f (syntax-rules ()
		    [(_ x) x])]
	       [g (syntax-rules ()
		    [(_ x) (f x)])])
    (list (f 1) (g 1)))) ;; => (1 2)

(let ([f (lambda (x) (+ x 1))])
  (letrec-syntax ([f (syntax-rules ()
                       [(_ x) x])]
                  [g (syntax-rules ()
                       [(_ x) (f x)])])
    (list (f 1) (g 1)))) ;; => (1 1) 
